 package pms.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;

/**
 * Controller, der die geaenderten Daten oder ein neu angelegtes Objekt
 * von Abteilung speichert   
 * Falls Fehler auftreten, wird die view 'Fehler.jsp' angezeigt.
 */

public class SaveAbteilung extends AlleAbteilungen 
{
	protected ModelAndView handleRequestInternal(
			HttpServletRequest httpServletRequest,
			HttpServletResponse httpServletResponse) throws Exception 
			{
			httpServletRequest.setCharacterEncoding("UTF-8");
			boolean ok = false;
			try {
				int id = Integer.parseInt(httpServletRequest.getParameter("id"));
				String abteilungsname = httpServletRequest.getParameter("abteilungsname");
				String maximal_duerfen_gleichzeitig_fehlen_String = httpServletRequest.getParameter("maximal_duerfen_gleichzeitig_fehlen");
				int maximal_duerfen_gleichzeitig_fehlen = Integer.parseInt(maximal_duerfen_gleichzeitig_fehlen_String);
				ok = getAbteilungDao().pruefemaximalduerfengleichzeitigfehlen(maximal_duerfen_gleichzeitig_fehlen);
				if (ok) {
					if (id == 0) 
					{
						getAbteilungDao().create(abteilungsname, maximal_duerfen_gleichzeitig_fehlen_String);
					} 
					else 
					{
						getAbteilungDao().modify(id, abteilungsname, maximal_duerfen_gleichzeitig_fehlen_String);
					}
				}
			} catch (Exception e) {
				e.printStackTrace();
				ModelAndView mv = new ModelAndView();
				mv.addObject("title", "Speichere Abteilung");
				mv.addObject("message", "Die Abteilung konnte nicht angelegt bzw. geändert werden." +
						" Bitte Eingaben neu...");
				mv.setViewName("Fehler"); 
				return mv;
			}	
			return super.handleRequestInternal(httpServletRequest, httpServletResponse);
	}

}